package master

import (
	"encoding/json"
	"io/ioutil"
)

var (
	// 单例
	G_config *Config
)

type Config struct {
	ApiPort         int `json:"apiPort"`
	ApiReadTimeout  int `json:"apiReadTimeout"`
	ApiWriteTimeout int `json:"apiWriteTimeout"`
	EtcdEndPoints   []string `json:"etcdEndPoints"`
	EtcdDialTimeout int `json:"etcdDialTimeout"`
}

// 加载配置
func InitConfig(filename string) (err error) {

	var (
		content []byte
		conf    Config
	)

	// 1、把配置文件读进来
	if content, err = ioutil.ReadFile(filename); err != nil {
		return
	}

	// 2、做json反序列化
	if err = json.Unmarshal(content, &conf); err != nil {
		return
	}

	// 赋值单例

	G_config = &conf

	return
}
